import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
    // 存储状态/数据
    state: {
        num: 10
    },
    // 修改状态/数据
    mutations: {
        changeNum(state) {
            console.log(state);
            state.num++;
        },
        changeNumArg(state, data) {
            state.num += data;
        }
    },
    // 可以进行异步操作,可以去请求接口数据,再去使用mutations修改
    actions: {
        actChange(context) {
            console.log(context);
            setTimeout(function() {
                context.commit("changeNum");
            }, 1000)
        },
        actChangeArg(context, data) {
            console.log(context);
            setTimeout(function() {
                context.commit("changeNumArg", data);
            }, 1000)
        }
    },
    // vuex的计算属性
    getters: {
        gettersNum(state) {
            return '¥' + state.num
        }
    },
    // 将vuex模块化,使数据管理更加清晰
    modules: {}
})